package ruleengine;

import java.util.HashSet;

import agents.util.ContractHistory;

import econtract.simple.Contract;

import ontology.models.contract.AbstractSituation;
import ontology.models.contract.Obligation;

public interface Inference {	
	//Predicados
	public boolean checkObligation(Obligation obligation, long time);
	public ContractHistory<String, AbstractSituation> getObligations(String contractID);
	public HashSet<String> getPermittedActions(String contractID, String agent);
	public HashSet<String> getAffectedParts(String contractID, Obligation obligation);
	
	//popular a base de conhecimento com os dados de um contrato
	public void fillKnowledgeBase(Contract contract);
	public void addFact(String statement);
	public void addPredicate(String statement);
}
